1. Field
Embodiments of the invention are broadly directed to improved methods and systems for creating software capable of performing the steps necessary to prepare a complex form, and more particularly to the use of annotations to specify dependency information for the fields of the form.
2. Related Art
Traditionally, implementing the logic of a complex form in software has been done using the same methodology as a human completing the form would: starting at the at the beginning of the form and proceeding through the various fields in order, implementing the logic for calculating each field in turn. This approach is both inherently slow and inherently error prone. It is slow because only a single person can be working on a monolithic implementation at any given time, and it is error-prone because, as form size and complexity increase, the likelihood of errors resulting from obscure interactions between distant portions of the monolithic codebase increases, and full-coverage testing becomes prohibitively difficult. Accordingly, there is a need for improved development methodologies to allow modularization and parallelization of software development for such software.